Skip to content

feat(examples): link Domains by DomainId to preserve ENSv1/ENSv2 variant#2180

Merged
shrugs merged 14 commits into
mainfrom
worktree-issue-2141-domain-by-id
May 22, 2026
Merged

feat(examples): link Domains by DomainId to preserve ENSv1/ENSv2 variant#2180
shrugs merged 14 commits into
mainfrom
worktree-issue-2141-domain-by-id

Conversation

@shrugs
Copy link
Copy Markdown
Member

@shrugs shrugs commented May 22, 2026

Closes #2141.

When a name like vitalik.eth has both an ENSv1 and an ENSv2 Domain, clicking the v1 variant in the enskit example app would land on the v2 canonical, because links navigated by name (Namegraph addressing, which resolves to the Canonical Domain).

This switches links to navigate by DomainId (a stable reference) wherever one is already in hand, so users land on the exact Domain they clicked. See the Stable IDs vs. Namegraph addressing docs.

Scope grew while in here: the example apps were un-pinned to workspace:* (and migrated to the current main Omnigraph schema), and the docs were version-locked to track production rather than main.

domain-by-id (the original fix)

  • single domain(by: DomainIdInput!) query (the @oneOf of { id } / { name }) shared by both views — RenderDomain takes a by: { id } | { name } prop and passes whichever stable reference it has
  • split the Domain browser into two routes:
    • /domain/name/:name — resolves to a name's Canonical Domain (keeps the EnsureInterpretedName flow)
    • /domain/id/:id — addresses an exact Domain, preserving its ENSv1/ENSv2 variant
  • Search, Account, and subdomain/parent links navigate by DomainId
  • a bare /domain now 404s rather than redirecting
  • commentary on the DomainBy type explaining the stable-id vs. namegraph distinction, linking the docs

examples on workspace:*

  • the example apps pinned published preview enssdk/enskit, which froze them against an old schema. switched all examples to workspace:* so they track main.
  • migrated their queries off the removed top-level Domain.name to the materialized canonical { name { beautified } }.

docs version-locking

Because the in-repo examples now use workspace:* (i.e. main = the latest Omnigraph schema) but the public hosted instances still run the previous release, the docs would otherwise teach queries that don't run against production. So the docs are vendor-versioned the same way the Omnigraph examples already are — frozen per-version and selected by ACTIVE_OMNIGRAPH_VERSION:

  • schema reference now loads the active version's frozen versions/<version>/schema.graphql instead of the live main SDL.
  • walkthroughs (omnigraph-graphql-api, enssdk, enskit, the ENSv2 Quickstart) are split into per-version MDX partials under @components/walkthroughs/<guide>/, and each route page renders the partial matching ACTIVE_OMNIGRAPH_VERSION. authored v1.13.1 (current production) and v1.14.1 (the blue deployment) variants; the selector throws on an unmapped version. promote by bumping the one constant.
  • HostedInstanceSdkVersionWarning derives the pinned SDK version from the active version.

This keeps the in-repo examples free to use workspace:* / the latest schema without breaking the published docs against production. (the omnigraph/index concepts page is left as-is — its 1.13.1 framing differs materially.) the Omnigraph examples snapshot/responses for v1.14.1 are handled in a separate PR.

verification

pnpm typecheck, pnpm lint, gql.tada codegen, and the docs build all pass; rendered pages confirm the active (v1.13.1) content. example apps have no tests; both script examples run against the blue 1.14.x endpoint.

🤖 Generated with Claude Code

Split the enskit example's Domain browser into /domain/name/:name and
/domain/id/:id, both backed by a single domain(by: DomainIdInput!) query.
Search, Account, and subdomain/parent links now navigate by DomainId so
clicking the v1 variant of a name lands on the v1 Domain rather than its
v2 canonical.

Closes #2141

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shrugs shrugs requested a review from a team as a code owner May 22, 2026 14:54
Copilot AI review requested due to automatic review settings May 22, 2026 14:54
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 22, 2026

⚠️ No Changeset found

Latest commit: 66895e9

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
enskit-react-example.ensnode.io Ready Ready Preview, Comment May 22, 2026 8:40pm
ensnode.io Ready Ready Preview, Comment May 22, 2026 8:40pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
admin.ensnode.io Skipped Skipped May 22, 2026 8:40pm
ensrainbow.io Skipped Skipped May 22, 2026 8:40pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 22, 2026

Review Change Stack

Warning

Rate limit exceeded

@shrugs has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 9 minutes and 34 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d5c14e3d-2509-41d6-8979-e1c3c5c62c69

📥 Commits

Reviewing files that changed from the base of the PR and between c2a3da8 and 66895e9.

📒 Files selected for processing (11)
  • docs/ensnode.io/src/data/omnigraph-examples/examples.ts
  • docs/ensnode.io/src/lib/playground/constants.ts
  • docs/ensnode.io/src/lib/playground/example-project/loadExampleProject.ts
  • docs/ensnode.io/src/lib/playground/example-project/replaceEnvWithValues.test.ts
  • docs/ensnode.io/src/lib/playground/example-project/replaceEnvWithValues.ts
  • docs/ensnode.io/src/lib/playground/example-project/types.ts
  • docs/ensnode.io/src/lib/playground/loadEnskitExampleProject.test.ts
  • docs/ensnode.io/src/lib/playground/loadEnskitExampleProject.ts
  • docs/ensnode.io/src/lib/playground/loadEnssdkExampleProject.test.ts
  • docs/ensnode.io/src/lib/playground/loadEnssdkExampleProject.ts
  • examples/enskit-react-example/src/App.tsx
📝 Walkthrough

Walkthrough

This PR implements version-locked integration documentation and schema-driven docs, derives SDK install pins from ACTIVE_OMNIGRAPH_VERSION, adds v1.13.1 and v1.14.1 walkthroughs (enskit, enssdk, Omnigraph API, quickstart), updates the schema doc explorer to load versioned snapshots, and refactors example apps to use canonical domain fields and ID-based routing.

Changes

Documentation & schema infrastructure

Layer / File(s) Summary
Version-aware UI and schema loading
docs/ensnode.io/src/components/molecules/HostedInstanceSdkVersionWarning.astro, docs/ensnode.io/src/components/organisms/OmnigraphSchemaDocExplorer.tsx
HostedInstanceSdkVersionWarning derives VERSION from ACTIVE_OMNIGRAPH_VERSION and shows unified install instructions; OmnigraphSchemaDocExplorer loads versioned schema.graphql snapshots via import.meta.glob and selects the matching SDL.
Integration index pages with version selector
docs/ensnode.io/src/content/docs/docs/integrate/index.mdx, docs/ensnode.io/src/content/docs/docs/integrate/integration-options/enskit/index.mdx, docs/ensnode.io/src/content/docs/docs/integrate/integration-options/enssdk/index.mdx, docs/ensnode.io/src/content/docs/docs/integrate/integration-options/omnigraph-graphql-api.mdx
Integration index pages now import versioned walkthrough partials and render the matching partial via a switch on ACTIVE_OMNIGRAPH_VERSION, throwing when unmapped.

Versioned Integration Walkthroughs

Layer / File(s) Summary
Omnigraph GraphQL API walkthroughs
docs/ensnode.io/src/components/walkthroughs/omnigraph-graphql-api/v1.13.1.mdx, docs/ensnode.io/src/components/walkthroughs/omnigraph-graphql-api/v1.14.1.mdx
Two fetch-based HTTP tutorials with curl and TypeScript fetch examples, types, error handling, subdomain iteration, and run/next-step links.
enskit React integration walkthroughs
docs/ensnode.io/src/components/walkthroughs/enskit/v1.13.1.mdx, docs/ensnode.io/src/components/walkthroughs/enskit/v1.14.1.mdx
Two React+Omnigraph tutorials covering scaffolding, gql.tada config, OmnigraphProvider wiring, typed DomainView with fragments, and Relay-style pagination.
enssdk TypeScript integration walkthroughs
docs/ensnode.io/src/components/walkthroughs/enssdk/v1.13.1.mdx, docs/ensnode.io/src/components/walkthroughs/enssdk/v1.14.1.mdx
Two Node/TypeScript tutorials covering enssdk setup, EnsNodeClient + omnigraph, typed queries, fragments, and pagination.
Quickstart guides
docs/ensnode.io/src/components/walkthroughs/quickstart/v1.13.1.mdx, docs/ensnode.io/src/components/walkthroughs/quickstart/v1.14.1.mdx
Two quickstart pages introducing ENSv2, Omnigraph, integration options, examples, and navigation to further docs.

Example Applications & playground

Layer / File(s) Summary
enskit example package & docs
examples/enskit-react-example/README.md, examples/enskit-react-example/package.json, examples/enskit-react-example/src/App.tsx
Switches enskit/enssdk deps to workspace:*, updates README and default VITE_ENSNODE_URL to the blue hosted endpoint, adjusts App routing defaults.
enskit queries & components
examples/enskit-react-example/src/AccountView.tsx, examples/enskit-react-example/src/SearchView.tsx, examples/enskit-react-example/src/DomainView.tsx
Queries and fragments now request canonical.name.beautified; removed interpreted-name beautifier; links updated to use DomainId routes; DomainView split into DomainByNameView/DomainByIdView with validation and redirects.
enssdk example updates
examples/enssdk-example/README.md, examples/enssdk-example/package.json, examples/enssdk-example/src/index.ts
Switches to workspace:*, updates README blue endpoint, adopts canonical.name.beautified in fragments and formatDomain, and uses nullish fallback for ENSNODE_URL.
omnigraph example updates
examples/omnigraph-graphql-example/README.md, examples/omnigraph-graphql-example/src/index.ts
Updates README endpoint, changes query and Domain interface to canonical.name.beautified, updates formatDomain and owner fallback string.
Playground constants & loader
docs/ensnode.io/src/lib/playground/constants.ts, docs/ensnode.io/src/lib/playground/loadEnssdkExampleProject.ts
Playground ENSNODE_URL constant set to blue endpoint; loader env replacement pattern updated to match nullish-coalescing form.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

  • #2068: Changes align with the docs rework described in the issue (versioned walkthroughs, schema-driven references, hosted-instance guidance).

Possibly related PRs

Suggested labels

docs

Poem

🐰 I hopped through docs to pin each version bright,

v1.13 and v1.14 glowing in the night.
Canon names now bloom, IDs guide the way,
Walkthroughs march forward, examples learn to play.
Hooray for neat docs — hop, code, and display!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 22.22% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly summarizes the primary change: linking Domains by DomainId instead of by name to preserve ENSv1/ENSv2 variants in the enskit example app.
Description check ✅ Passed The PR description covers all required template sections: Summary (what changed), Why (closes #2141, explains the issue and motivation), Testing (verification steps), and Notes for Reviewer (scope expansion details). All required checklist items are addressed.
Linked Issues check ✅ Passed The PR successfully addresses issue #2141 by implementing domain navigation by DomainId rather than by name, ensuring users land on the exact ENSv1/ENSv2 variant clicked. Two new routes (/domain/name/:name and /domain/id/:id) and updated link logic throughout the app preserve the selected variant.
Out of Scope Changes check ✅ Passed Additional scope (example app workspace:* migration, docs version-locking) is justified as necessary consequences of the primary fix to ensure consistency between in-repo examples and published documentation. All changes align with the stated objective of preserving domain variant selection.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-issue-2141-domain-by-id

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 22, 2026

Greptile Summary

This PR fixes a bug where clicking an ENSv1 domain in the example app would silently redirect to the ENSv2 canonical, by switching from name-based (Namegraph) routing to DomainId-based routing wherever a stable ID is already in hand. The scope expanded to migrate all examples to workspace:* dependencies (1.14.x schema) and to version-lock the docs walkthroughs so the published site stays accurate against the production-deployed Omnigraph schema.

  • Domain routing split: /domain/:name is replaced by two routes — /domain/name/:name (Namegraph, resolves to Canonical) and /domain/id/:id (stable DomainId, preserves ENSv1/ENSv2 variant). A single shared DomainQuery (@oneOf DomainIdInput) backs both views via a by: { id } | { name } prop.
  • Schema migration: All three examples (enssdk, enskit, omnigraph-graphql) remove all remaining TODO-guarded domain.name accesses in favour of canonical { name { beautified } }; ENSNODE_URL non-null assertions are replaced with ?? fallbacks targeting the blue (1.14.x) endpoint.
  • Docs version-locking: Walkthroughs for enskit, enssdk, omnigraph-graphql-api, and the ENSv2 Quickstart are split into per-version MDX partials rendered by a switch on ACTIVE_OMNIGRAPH_VERSION; the schema reference loads from a frozen snapshot; HostedInstanceSdkVersionWarning derives the pinned version from the same constant.

Confidence Score: 5/5

Safe to merge — the domain routing fix is isolated to the example app, schema migration is consistent across all three examples, and the docs version-locking pattern builds deterministically with a compile-time throw for unmapped versions.

Changes are well-scoped: the routing split is contained to the enskit example, resolveMonorepoSpecifier correctly handles workspace:* for the playground, and the docs switch pattern throws at build time rather than silently rendering stale content. No data-loss paths, no auth surface, no production API calls changed.

No files require special attention. The version-locked walkthrough partials under @components/walkthroughs/ will need a new partial and a case entry each time ACTIVE_OMNIGRAPH_VERSION is promoted — the throw-on-default guards that gate.

Important Files Changed

Filename Overview
examples/enskit-react-example/src/DomainView.tsx Refactored into DomainByNameView and DomainByIdView routes; unified DomainQuery with @OneOf DomainIdInput; all links now navigate by DomainId to preserve ENSv1/ENSv2 variant; schema migrated from .name to .canonical.name.beautified.
examples/enskit-react-example/src/App.tsx Adds /domain/name/:name and /domain/id/:id routes; switches default endpoint to blue (1.14.x); updates nav link for domain browser.
examples/enskit-react-example/src/AccountView.tsx Removes beautifyInterpretedName; migrates from .name to .canonical.name.beautified; links now use /domain/id/:id for stable DomainId routing.
examples/enskit-react-example/src/SearchView.tsx Search query updated to starts_with filter; non-canonical edges filtered before display; links migrate to /domain/id/:id; No matches guard moved to visibleEdges count.
docs/ensnode.io/src/components/molecules/HostedInstanceSdkVersionWarning.astro Removed per-SDK for prop; now derives version from ACTIVE_OMNIGRAPH_VERSION and always shows both enssdk and enskit install commands.
docs/ensnode.io/src/components/organisms/OmnigraphSchemaDocExplorer.tsx Now loads the frozen schema snapshot for ACTIVE_OMNIGRAPH_VERSION via import.meta.glob; throws at build time if no snapshot exists for that version.
docs/ensnode.io/src/lib/playground/example-project/loadExampleProject.ts Removed replaceEnvWithValues transform and extraFiles injection; playground now uses raw source files directly, relying on in-code fallback defaults for ENSNODE_URL.
examples/enssdk-example/src/index.ts Migrated to canonical.name.beautified schema; ENSNODE_URL now uses ?? fallback instead of non-null assertion; defaults to blue endpoint.
examples/omnigraph-graphql-example/src/index.ts Migrated queries from .name to canonical.name.beautified; switched ENSNODE_URL to ?? fallback pointing at blue endpoint.
docs/ensnode.io/src/data/omnigraph-examples/examples.ts Hardcodes playground connection to production URL with an explanatory comment; removes the ENSNODE_URL constant import.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User clicks a link] --> B{Link type?}
    B -->|by name| C["DomainByNameView /domain/name/:name"]
    B -->|by DomainId| D["DomainByIdView /domain/id/:id"]
    C --> E[EnsureInterpretedName]
    E -->|coerced| G["Redirect to normalized name"]
    E -->|malformed| H["Error page"]
    E -->|valid| I["RenderDomain by = name"]
    D --> K["RenderDomain by = id"]
    I --> L["DomainQuery by: DomainIdInput"]
    K --> L
    L --> M{API response}
    M -->|not found| N["No domain found message"]
    M -->|found| O["Render Domain details"]
    O --> P["Parent link via DomainId"]
    O --> Q["Subdomain links via DomainId"]
    R["Search / Account views"] -->|navigate by DomainId| D
Loading

Reviews (14): Last reviewed commit: "fix: clean up stackblitz env handling" | Re-trigger Greptile

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the enskit-react-example app to link and navigate to Domains by DomainId (stable identifier) rather than by name (namegraph addressing), so users land on the exact ENSv1/ENSv2 Domain variant they clicked (e.g., ENSv1 vitalik.eth no longer routes to the ENSv2 canonical).

Changes:

  • Update Search and Account results, plus parent/subdomain links, to navigate via /domain/id/:id.
  • Split Domain browsing into two routes: /domain/name/:name (canonical resolution) and /domain/id/:id (exact Domain).
  • Consolidate the Domain view query to a single domain(by: DomainIdInput!) query shared by both routes, and add explanatory commentary + a Changeset.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
examples/enskit-react-example/src/SearchView.tsx Switch result links to /domain/id/:id to preserve selected ENSv1/ENSv2 variant.
examples/enskit-react-example/src/DomainView.tsx Add unified DomainByQuery, introduce DomainByNameView vs DomainByIdView, and update subdomain/parent navigation to stable IDs.
examples/enskit-react-example/src/App.tsx Update navigation and routing to new /domain/name/:name and /domain/id/:id paths.
examples/enskit-react-example/src/AccountView.tsx Switch owned-domain links to /domain/id/:id for stable navigation.
.changeset/enskit-example-domain-by-id.md Record the example-app routing/linking behavior change as a patch Changeset.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread examples/enskit-react-example/src/DomainView.tsx Outdated
Comment thread examples/enskit-react-example/src/DomainView.tsx Outdated
Comment thread examples/enskit-react-example/src/App.tsx
Comment thread examples/enskit-react-example/src/DomainView.tsx Outdated
Comment thread examples/enskit-react-example/src/DomainView.tsx
Comment thread examples/enskit-react-example/src/App.tsx
… schema

The example apps pinned published preview enssdk/enskit, masking them from
workspace schema changes. Switch all examples to workspace:* and migrate
their queries from the removed Domain.name field to the materialized
canonical { name { beautified } }. Point hosted-instance usage at the `blue`
v2-sepolia deployment (ENSNode 1.14.x), which serves the matching schema.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel vercel Bot temporarily deployed to Preview – ensrainbow.io May 22, 2026 15:09 Inactive
@vercel vercel Bot temporarily deployed to Preview – ensnode.io May 22, 2026 15:09 Inactive
@vercel vercel Bot temporarily deployed to Preview – admin.ensnode.io May 22, 2026 15:09 Inactive
…ive version

The schema reference rendered the live `main` SDL while examples were locked to the
production-deployed version; the walkthroughs hardcoded 1.14.x schema/code against
production endpoints running 1.13.1 — so both were broken against production.

- Schema reference (OmnigraphSchemaDocExplorer) now loads the active version's frozen
  schema.graphql instead of `enssdk/omnigraph/schema.graphql?raw`.
- Walkthroughs (omnigraph-graphql-api, enssdk, enskit) are split into per-version MDX
  partials under @components/walkthroughs/<guide>/, with the route page rendering the
  partial matching ACTIVE_OMNIGRAPH_VERSION. Authored v1.13.1 (production) and v1.14.1
  (blue) variants; promote by bumping the constant.
- HostedInstanceSdkVersionWarning derives the pinned SDK version from the active version.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 22, 2026 16:05
@vercel vercel Bot temporarily deployed to Preview – admin.ensnode.io May 22, 2026 16:05 Inactive
@vercel vercel Bot temporarily deployed to Preview – ensrainbow.io May 22, 2026 16:05 Inactive
- SearchView: correct copy to `where: { name: { starts_with } }` matching the
  actual filter; compute visibleEdges so an all-non-canonical page shows "No matches."
- DomainView: drop unreachable param guards (route guarantees the segment)
- playground loader: update ENSNODE_URL envReplacements regex for the new
  `?? "<default>"` form so the enssdk-example test passes again
- enssdk-example README: fix mismatched code fence

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 22, 2026 17:47
@vercel vercel Bot temporarily deployed to Preview – ensrainbow.io May 22, 2026 17:47 Inactive
@vercel vercel Bot temporarily deployed to Preview – admin.ensnode.io May 22, 2026 17:47 Inactive
@shrugs
Copy link
Copy Markdown
Member Author

shrugs commented May 22, 2026

@greptile review

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 30 out of 31 changed files in this pull request and generated 5 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread examples/omnigraph-graphql-example/src/index.ts
Comment thread examples/enssdk-example/src/index.ts
Comment thread examples/enskit-react-example/src/DomainView.tsx Outdated
Comment thread docs/ensnode.io/src/lib/playground/loadEnssdkExampleProject.ts Outdated
- playground: point injected ENSNODE_URL at the `blue` (1.14.x) deployment so the
  enssdk/enskit interactive playgrounds match the 1.14.x schema their example
  source now targets; the non-`blue` v2-sepolia instance serves the old schema
  and would fail at runtime
- DomainView: drop stale "since we catch the empty string case above" comment
  (that guard was removed in loop 1)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shrugs
Copy link
Copy Markdown
Member Author

shrugs commented May 22, 2026

@greptile review

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@examples/enskit-react-example/src/DomainView.tsx`:
- Around line 56-57: The Link URL construction in DomainView.tsx uses raw domain
IDs (e.g., domain.id and data.domain.parent.id) which may contain slashes from
ENSv1 IDs and break the single-segment route; update the Link to build the path
using a URL-safe encoding (e.g., wrap the ID with encodeURIComponent) whenever
interpolating into `/domain/id/:id` so the entire ENSv1DomainId remains a single
path segment for the Link and any router navigation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 713c56f8-dc82-4ff3-abef-711468d42237

📥 Commits

Reviewing files that changed from the base of the PR and between 8256629 and c2a3da8.

📒 Files selected for processing (22)
  • docs/ensnode.io/src/components/molecules/HostedInstanceSdkVersionWarning.astro
  • docs/ensnode.io/src/components/molecules/IntegrateHostedEnsNodeTip.astro
  • docs/ensnode.io/src/components/organisms/OmnigraphSchemaDocExplorer.tsx
  • docs/ensnode.io/src/components/walkthroughs/enskit/v1.13.1.mdx
  • docs/ensnode.io/src/components/walkthroughs/enskit/v1.14.1.mdx
  • docs/ensnode.io/src/components/walkthroughs/enssdk/v1.13.1.mdx
  • docs/ensnode.io/src/components/walkthroughs/enssdk/v1.14.1.mdx
  • docs/ensnode.io/src/components/walkthroughs/quickstart/v1.13.1.mdx
  • docs/ensnode.io/src/components/walkthroughs/quickstart/v1.14.1.mdx
  • docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/enskit/example.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/enssdk/example.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/unigraph/schema-reference.mdx
  • docs/ensnode.io/src/lib/playground/constants.ts
  • docs/ensnode.io/src/lib/playground/loadEnssdkExampleProject.ts
  • examples/enskit-react-example/README.md
  • examples/enskit-react-example/src/DomainView.tsx
  • examples/enskit-react-example/src/SearchView.tsx
  • examples/enssdk-example/README.md
  • examples/enssdk-example/src/index.ts
  • examples/omnigraph-graphql-example/README.md
  • examples/omnigraph-graphql-example/src/index.ts

Comment thread examples/enskit-react-example/src/DomainView.tsx
Comment thread examples/enssdk-example/src/index.ts
Copilot AI review requested due to automatic review settings May 22, 2026 20:39
@vercel vercel Bot temporarily deployed to Preview – admin.ensnode.io May 22, 2026 20:39 Inactive
@vercel vercel Bot temporarily deployed to Preview – ensrainbow.io May 22, 2026 20:39 Inactive
@shrugs shrugs merged commit 28d5576 into main May 22, 2026
20 of 21 checks passed
@shrugs shrugs deleted the worktree-issue-2141-domain-by-id branch May 22, 2026 20:42
@shrugs shrugs review requested due to automatic review settings May 22, 2026 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refine links for ENSv1 vs ENSv2 domains in enskit example app

2 participants